/**
 * 系统后台数据配置服务JS-DataService.jsp
 */

// 项目路径
var strPath = window.document.location.pathname;
//var postPath = strPath.substring(0, strPath.substr(1).indexOf('/') + 1);
var postPath = "/gdp";
// 判断是添加还是修改操作
var editStart = 1;
// 这是主id
var biaobiao = 0;

var pidpid = 3;
var id = 0;

var jarguid = "";
$(function() {
	$("#serverid").attr("disabled",false);
	$("#dbkey").attr("disabled", true);
	// 左侧tree数据绑定
	var setting = {
		data : {
			key : {
				title : "hint"
			},
			simpleData : {
				enable : true
			}
		},
		callback : {
			onClick : onClick
		}
	};
	var zNodes = GetLeftTreeData();
	$.fn.zTree.init($("#tree"), setting, zNodes);

	// Tree点击事件
	function onClick(event, treeId, treeNode, clickFlag) {
		biaobiao = treeNode.id;
		pidpid = treeNode.pid;
		if (pidpid == 0) {
			cleanJarService();
			editStart = 1;
			$("#dbkey").val(biaobiao);
			addkexuan();
			$("#serverid").attr("disabled",false);
		}else{
			editStart = 2;
			editjar();
		}
		$("#tb_dataList").bootstrapTable('refresh');
	}
	// 获取左侧列表数据
	function GetLeftTreeData() {
		var treeData;
		$.ajax({
			type : 'get',
			url : postPath + '/system/jarservice/getTreeList',
			async : false,
			success : function(res) {
				treeData = res;
			},
			error : function() {
				alert('error...');
			}
		});
		return treeData;
	}
	// 添加可选项
	function addkexuan() {
		$.ajax({
			type : 'get',
			url : postPath + '/system/jarservice/getJarList',
			async : false,
			success : function(res) {
				$("#jarpackage").append(
						"<option value=''>请选择jar包</option>");
				$.each(res, function(is, el) {
					$("#jarpackage").append(
							"<option value=" + el.guid + ">" + el.jarName + "</option>");
				});
			},
			error : function() {
				alert('error...');
			}
		});
	}
	$("#jarpackage").change(function(){
		$("#packageceng").empty();
		var jarid = $("#jarpackage").val();
		$.ajax({
			type : 'get',
			url : postPath + '/system/jarservice/getPackageList',
			data:{
				jarids:jarid
			},
			async : false,
			success : function(res) {
				$("#packageceng").append(
						"<option value=''>请选择包层</option>");
				$.each(res, function(is, el) {
					$("#packageceng").append(
							"<option value=" + el.packageName + ">" + el.packageName + "</option>");
				});
			},
			error : function() {
				alert('error...');
			}
		});
	});
	function jarpackageage(e){
		$.ajax({
			type : 'get',
			url : postPath + '/system/jarservice/getPackageList',
			data:{
				jarids:e
			},
			async : false,
			success : function(res) {
				$("#packageceng").append(
						"<option value=''>请选择包层</option>");
				$.each(res, function(is, el) {
					$("#packageceng").append(
							"<option value=" + el.packageName + ">" + el.packageName + "</option>");
				});
			},
			error : function() {
				alert('error...');
			}
		});
	}
	$("#packageceng").change(function(){
		$("#classname").empty();
		var jarid = $("#packageceng").val();
		$.ajax({
			type : 'get',
			url : postPath + '/system/jarservice/getClassList',
			data:{
				jarids:jarid
			},
			async : false,
			success : function(res) {
				$("#classname").append(
						"<option value=''>请选择类名</option>");
				$.each(res, function(is, el) {
					$("#classname").append(
							"<option value=" + el.className + ">" + el.className + "</option>");
				});
			},
			error : function() {
				alert('error...');
			}
		});
	});
	function packagecengceng(e){
		$.ajax({
			type : 'get',
			url : postPath + '/system/jarservice/getClassList',
			data:{
				jarids:e
			},
			async : false,
			success : function(res) {
				$("#classname").append(
						"<option value=''>请选择类名</option>");
				$.each(res, function(is, el) {
					$("#classname").append(
							"<option value=" + el.className + ">" + el.className + "</option>");
				});
			},
			error : function() {
				alert('error...');
			}
		});
	}
	$("#classname").change(function(){
		$("#classmethod").empty();
		var jarid = $("#classname").val();
		$.ajax({
			type : 'get',
			url : postPath + '/system/jarservice/getclassmethod',
			data:{
				jarids:jarid
			},
			async : false,
			success : function(res) {
				$("#classname").append(
						"<option value=''>请选择方法名</option>");
				$.each(res, function(is, el) {
					$("#classmethod").append(
							"<option value=" + el.classMethod + ">" + el.classMethod + "</option>");
				});
			},
			error : function() {
				alert('error...');
			}
		});
	});
	function classnamename(e){
		$.ajax({
			type : 'get',
			url : postPath + '/system/jarservice/getclassmethod',
			data:{
				jarids:e
			},
			async : false,
			success : function(res) {
				$("#classmethod").append(
						"<option value=''>请选择方法名</option>");
				$.each(res, function(is, el) {
					$("#classmethod").append(
							"<option value=" + el.classMethod + ">" + el.classMethod + "</option>");
				});
			},
			error : function() {
				alert('error...');
			}
		});
	}
	// 添加操作
	$("#btn_add").click(function() {
		cleanContent();
		$("#EditContent").modal('show');
		editStart = 1;
	});

	// 修改操作

	function editjar(){
		cleanJarService();
		$.ajax({
			type : 'get',
			url : postPath + '/system/jarservice/selectJarOne',
			async : false,
			data : {
				guid : biaobiao
			},
			success : function(res) {
				$("#serverid").attr("disabled",true);
				$("#serverid").val(res.guid);
				$("#servername").val(res.servicename);
				$("#dbkey").val(res.dbKey);
				$("#sql").val(res.dtSql);
				addkexuan();
				jarpackageage(res.extjarid);
				packagecengceng(res.remark);
				classnamename(res.extjarclass);
				$("#jarpackage").val(res.extjarid);
				$("#packageceng").val(res.remark);
				$("#classmethod").val(res.callinvoke);
				$("#classname").val(res.extjarclass);
				$("#twosql").val(res.othersql);
			}
		});
	}

	// 删除节点数据
	$("#deletety").click(function() {
		if (pidpid == 0) {
			bootbox.alert("请选择jar节点!");
			return;
		}
		bootbox.confirm("确认删除?", function(result) {
			if (result == false)
				return;
			$.ajax({
				type : 'POST',
				url : postPath + '/system/jarservice/deleteJarServer',
				data : {
					key : biaobiao
				},
				success : function(data) {
					bootbox.alert("删除成功!");
					cleanJarService();
					var zNodes = GetLeftTreeData();
					$.fn.zTree.init($("#tree"), setting, zNodes);
				},
				error : function() {
					bootbox.alert("删除失败!");
				}
			});
		});
	});

	// 保存数据
	$("#btn_save").click(function() {
		var validataResult = validateData();
		if (validataResult) {
			var editurl = "";
			if (editStart == 1) {
				editurl = postPath + '/system/jarservice/insertJarServer';
			} else if (editStart == 2) {
				editurl = postPath + '/system/jarservice/updateJarServer';
			}
			var ad = biaobiao;
			var serverdb = {
						guid : $("#serverid").val(),
						servicename : $("#servername").val(),
						extjarid : $("#jarpackage option:selected").val(),
						extjarclass : $("#classname option:selected").val(),
						callinvoke : $("#classmethod option:selected").val(),
						remark :$("#packageceng option:selected").val(),
						dbKey : $("#dbkey").val(),
						dtSql : $("#sql").val(),
						jarname: $("#jarpackage option:selected").text(),
						othersql:$("#twosql").val()
				};
			$.ajax({
				type : 'POST',
				url : editurl,
				async : false,
				data : JSON.stringify(serverdb),
				dataType : 'json',
				contentType : 'application/json;charset=UTF-8',
				success : function(res) {
					bootbox.alert("保存成功!");
					var zNodes = GetLeftTreeData();
					$.fn.zTree.init($("#tree"), setting, zNodes);
				}
			});

		}

	});

})



// 添加节点操作
function addcode() {
	cleancode();
	$("#codeTree").modal('show');
	editStart = 1;
};
// 修改节点操作
function editcode() {
	cleancode();
	if (biaobiao == 0) {
		bootbox.alert("请选择要修改的节点!");
		return;
	}
	$.ajax({
		type : 'get',
		url : postPath + '/system/code/selectTypeOne',
		async : false,
		data : {
			key : biaobiao
		},
		success : function(res) {
			$("#name").val(res.typeName);
			$("#remakes").val(res.remake);
			editStart = 2;
		}
	});
	$("#codeTree").modal('show');

};

// 验证表单内容
function validateData() {
	if ($("#serverid").val() == "") {
		$("#derrorInfo").html("服务ID不能为空!");
		return false;
	} else {
		$("#derrorInfo").html("");
	}
	if ($("#servername").val() == "") {
		$("#derrorInfo").html("服务名称不能为空!");
		return false;
	} else {
		$("#derrorInfo").html("");
	}
	if ($("#jarpackage option:selected").val() == "") {
		$("#derrorInfo").html("jar包不能为空!");
		return false;
	} else {
		$("#derrorInfo").html("");
	}
	if ($("#packageceng option:selected").val() == "") {
		$("#derrorInfo").html("包层不能为空!");
		return false;
	} else {
		$("#derrorInfo").html("");
	}
	if ($("#classname option:selected").val() == "") {
		$("#derrorInfo").html("类名不能为空!");
		return false;
	} else {
		$("#derrorInfo").html("");
	}
	if ($("#classmethod option:selected").val() == "") {
		$("#derrorInfo").html("方法不能为空!");
		return false;
	} else {
		$("#derrorInfo").html("");
	}
	var re = 0;
	if(editStart ==1){
		var selectguid = $("#serverid").val();
		$.ajax({
			type : 'get',
			url : postPath + '/system/jarservice/selectCountGUID',
			async : false,
			data : {
				dbKey : selectguid
			},
			success : function(res) {
				re =res;
			}
		});
	}
	if (re != 0) {
		$("#derrorInfo").html("ID在表中已存在");
		return false;
	} else {
		$("#derrorInfo").html("");
	}
	return true;
}

function cleanJarService() {
	$("#serverid").val("");
	$("#servername").val("");
	$("#dbkey").val("");
	$("#sql").val("");

	$("#jarpackage").empty();
	$("#packageceng").empty();
	$("#classname").empty();
	$("#classmethod").empty();
}
